package com.zwb.service.controller;

import com.zwb.service.common.CacheConstant;
import com.zwb.service.pojo.Joblevel;
import com.zwb.service.service.IJoblevelService;
import com.zwb.service.vo.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author 头发又黑又长
 * @Date 2022/9/2 9:42
 * @email zwb15083976291@163.com
 */
@Api(tags = "职称管理")
@RestController
@CacheConfig(cacheNames = CacheConstant.CACHEABLE_VALUE_3_DAT)
@RequestMapping("/system/basic/joblevel")
public class JoblevelController {

    @Autowired
    private IJoblevelService joblevelService;


    @ApiOperation("获取所有职称信息")
    @Cacheable(key = "'joblevelAll'")
    @GetMapping("/")
    public R getJoblevelAll() {
        return R.success(joblevelService.list());
    }

    @ApiOperation("添加职称信息")
    @CacheEvict(key = "'joblevelAll'")
    @PostMapping("/")
    public R addJoblevel(@RequestBody Joblevel joblevel) {
        return joblevelService.save(joblevel)
                ? R.success("添加职位信息成功") : R.error("添加职位信息失败");
    }

    @ApiOperation("修改职称信息")
    @CacheEvict(key = "'joblevelAll'")
    @PutMapping("/")
    public R updateJoblevel(@RequestBody Joblevel joblevel) {
        return joblevelService.updateById(joblevel)
                ? R.success("修改职位信息成功") : R.error("修改职位信息失败");
    }

    @ApiOperation("删除职称信息")
    @CacheEvict(key = "'joblevelAll'")
    @DeleteMapping("/{id}")
    public R delJoblevel(@PathVariable("id") long id) {
        return joblevelService.removeById(id)
                ? R.success("删除职位信息成功") : R.error("删除职位信息失败");
    }

    @ApiOperation("批量删除职位信息")
    @CacheEvict(key = "joblevelAll")
    @DeleteMapping("/")
    public R batchDelJoblevel(@RequestBody List<Long> ids) {
        return joblevelService.removeBatchByIds(ids)
                ? R.success("批量删除职位信息成功") : R.error("批量删除职位信息失败");

    }


}


